﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Torneo.Entidades;

namespace Torneo.BusinessLogic
{
    public class ResultadoBLL
    {
        public void AgregarResultado(Resultado resultado)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();


            Resultado resultadoCreado = new Resultado();
            resultadoCreado.Emparejamiento = unityOfWork.EmparejamientoRepository.ObtenerEmparejamientoPorId(resultado.ResultadoId);
            resultadoCreado.ResultadoA = resultado.ResultadoA;
            resultadoCreado.ResultadoB = resultado.ResultadoB;
            if (resultadoCreado.ResultadoA > resultadoCreado.ResultadoB)
                resultadoCreado.Ganador = resultadoCreado.Emparejamiento.JugadorA;
            else
                resultadoCreado.Ganador = resultadoCreado.Emparejamiento.JugadorB;

            resultadoCreado.ResultadoId = resultadoCreado.Emparejamiento.EmparejamientoId;

            unityOfWork.ResultadoRepository.AgregarResultado(resultadoCreado);
            unityOfWork.SaveChanges();
            unityOfWork.Dispose();
        }
        
        public void ModificarResultado(Resultado resultado)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            unityOfWork.ResultadoRepository.ModificarResultado(resultado);
            unityOfWork.SaveChanges();
            unityOfWork.Dispose();
        }
        public Resultado ObtenerResultado(Emparejamiento emparejamiento)
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            return unityOfWork.ResultadoRepository.ObtenerResultado(emparejamiento);            
        }

        public List<Resultado> ObtenerTodos()
        {
            var unityOfWork = new Torneo.Repository.UnityOfWork();
            return unityOfWork.ResultadoRepository.ObtenerTodos();       
        }
    }
}
